#ifndef _APPS_BDESKTOP_CDESKTOPAPP_H_
#define _APPS_BDESKTOP_CDESKTOPAPP_H_

#include "auto.h"
#include <buola/app/capp.h>
#include <buola/gui/cwindowfactory.h>
#include "ctopbar.h"
#include "cdock.h"
#include "cappmanager.h"
#include "cvolumemanager.h"
#include "crootwindow.h"

namespace buola { namespace bdesktop {

class CDesktopApp : public CApp,public gui::CWindowFactory
{
public:
    CDesktopApp();
    ~CDesktopApp();

    virtual CRootWindow *GetRoot();

    virtual bool Start();

    CVolumeManager *GetVolumeManager()      {   return mVolumeManager;  }

private:
    CTopBar *mTopBar;
    CDock *mDock;
    CAppManager *mAppManager;
    CVolumeManager *mVolumeManager;

    friend class CRootWindow;
};

extern CDesktopApp *gDesktopApp;

/*namespace bdesktop*/ } /*namespace buola*/ }

#endif
